package model;
import java.io.Serializable;
import java.util.Iterator;
import java.util.TreeSet;
import comparators.ProductComparator;
public class Warehouse implements Serializable {
private static final long serialVersionUID = 1L;
private TreeSet<Product> products;
// creates an empty warehouse
public Warehouse() {
this.products = new TreeSet<Product>(new ProductComparator());
}
// creates a warehouse with given products
public Warehouse(TreeSet<Product> products) {
setProducts(products);
}
public void addProduct(Product p) {
this.products.add(p);
}
public void removeProduct(int idProduct) {
Iterator<Product> itr = this.products.iterator();
while (itr.hasNext()) {
Product p = itr.next();
if (p.getIdProduct() == idProduct)
itr.remove();
}
}
public void modifyProduct(int idProduct, int index, String modified) {
System.out.println("Modified:" + idProduct + " " + index + " " + modified);
Iterator<Product> itr = this.products.iterator();
while (itr.hasNext()) {
Product p = itr.next();
if (p.getIdProduct() == idProduct) {
switch (index) {
case 1:
p.setTitle(modified);
break;
case 2:
p.setAuthor(modified);
break;
case 3:
p.setPublisher(modified);
break;
case 4:
p.setPrice(Double.parseDouble(modified));
break;
case 5:
p.setQuantity(Integer.parseInt(modified));
break;
default:
break;
}
}
}
}
public void view() {
Iterator<Product> itr = this.products.iterator();
while (itr.hasNext()) {
Product p = itr.next();
p.printProduct();
}
}
public TreeSet<Product> getProducts() {
return products;
}
public void setProducts(TreeSet<Product> products) {
this.products = products;
}
public Product getProduct(int idProduct) {
Iterator<Product> itr = this.products.iterator();
while (itr.hasNext()) {
Product p = itr.next();
if (p.getIdProduct() == idProduct) {
return p;
}
}
return null;
}
public TreeSet<Product> searchWarehouse(String search) {
TreeSet<Product> searchResults = new TreeSet<Product>(new ProductComparator());
Iterator<Product> itr = this.products.iterator();
while (itr.hasNext()) {
Product p = itr.next();
if (p.getTitle().equals(search) || p.getAuthor().equals(search) || p.getPublisher().equals(search)) {
searchResults.add(p);
}
}
return searchResults;
}
}